LINQ (Language Integrated Query) অ্যাগ্রিগেশন অপারেশনগুলির মাধ্যমে ডেটার ওপর বিভিন্ন ধরনের গণনা বা সারাংশ বের করতে পারে। অ্যাগ্রিগেশন অপারেশনগুলি যেমন Sum, Average, Min, Max, এবং Count ডেটার একটি গুচ্ছ বা কলামের ওপর গণনা, গড়, সর্বনিম্ন বা সর্বোচ্চ মান নির্ণয় করতে ব্যবহৃত হয়। এটি ডেটা এনালাইসিসে অত্যন্ত কার্যকরী হতে পারে।
Sum অপারেশন ব্যবহার করে আপনি ডেটার একটি কলামের সমস্ত মান যোগ করতে পারেন। এটি সাধারণত সংখ্যামূলক ডেটার জন্য ব্যবহৃত হয়।
উদাহরণ:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// Sum অপারেশন ব্যবহার করে যোগফল বের করা
var total = numbers.Sum();
Console.WriteLine(total); // Output: 15
এখানে Sum অপারেশনটি ব্যবহার করে ১ থেকে ৫ পর্যন্ত সংখ্যাগুলোর যোগফল ১৫ পাওয়া গেছে।
Average অপারেশন ব্যবহার করে আপনি ডেটার একটি কলামের গড় (mean) মান বের করতে পারেন। এটি সংখ্যামূলক ডেটার গড় মান নির্ণয় করতে ব্যবহৃত হয়।
উদাহরণ:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// Average অপারেশন ব্যবহার করে গড় বের করা
var average = numbers.Average();
Console.WriteLine(average); // Output: 3
এখানে Average অপারেশনটি ১ থেকে ৫ পর্যন্ত সংখ্যাগুলোর গড় বের করেছে, যা ৩।
Min অপারেশন ব্যবহার করে আপনি ডেটার মধ্যে সর্বনিম্ন মান বের করতে পারেন। এটি সংখ্যামূলক ডেটার জন্য সর্বনিম্ন মান নির্ধারণ করতে ব্যবহৃত হয়।
উদাহরণ:
List<int> numbers = new List<int> { 10, 20, 5, 30, 15 };
// Min অপারেশন ব্যবহার করে সর্বনিম্ন মান বের করা
var minValue = numbers.Min();
Console.WriteLine(minValue); // Output: 5
এখানে Min অপারেশনটি ১০, ২০, ৫, ৩০, এবং ১৫ এর মধ্যে সর্বনিম্ন মান, অর্থাৎ ৫ বের করেছে।
Max অপারেশন ব্যবহার করে আপনি ডেটার মধ্যে সর্বোচ্চ মান বের করতে পারেন। এটি সংখ্যামূলক ডেটার জন্য সর্বোচ্চ মান নির্ধারণ করতে ব্যবহৃত হয়।
উদাহরণ:
List<int> numbers = new List<int> { 10, 20, 5, 30, 15 };
// Max অপারেশন ব্যবহার করে সর্বোচ্চ মান বের করা
var maxValue = numbers.Max();
Console.WriteLine(maxValue); // Output: 30
এখানে Max অপারেশনটি ১০, ২০, ৫, ৩০, এবং ১৫ এর মধ্যে সর্বোচ্চ মান, অর্থাৎ ৩০ বের করেছে।
Count অপারেশন ব্যবহার করে আপনি একটি ডেটা সোর্সের মধ্যে মোট উপাদানের সংখ্যা বের করতে পারেন। এটি সাধারণত কোনো কন্ডিশন পূরণকারী বা নির্দিষ্ট শর্তের অধীনে উপাদান গণনা করতে ব্যবহৃত হয়।
উদাহরণ:
List<int> numbers = new List<int> { 10, 20, 5, 30, 15 };
// Count অপারেশন ব্যবহার করে উপাদানগুলোর সংখ্যা বের করা
var count = numbers.Count();
Console.WriteLine(count); // Output: 5
এখানে Count অপারেশনটি লিস্টের মোট ৫টি উপাদান গুনে দিয়েছে।
শর্তসহ Count অপারেশন:
List<int> numbers = new List<int> { 10, 20, 5, 30, 15 };
// Where এর সাথে Count ব্যবহার করে even সংখ্যাগুলোর সংখ্যা বের করা
var evenCount = numbers.Count(n => n % 2 == 0);
Console.WriteLine(evenCount); // Output: 3
এখানে Where এবং Count অপারেশন একসাথে ব্যবহার করে even numbers (যেগুলোর ভাগফল ২ দ্বারা শূন্য হবে) গণনা করা হয়েছে, এবং তার সংখ্যা ৩ পাওয়া গেছে।
Aggregate অপারেশন আরও কাস্টম অ্যাগ্রিগেশন সঞ্চালন করার জন্য ব্যবহৃত হয়, যেখানে আপনি নিজের নির্দিষ্ট লগিক প্রয়োগ করতে পারেন।
উদাহরণ:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// Aggregate অপারেশন ব্যবহার করে কাস্টম অ্যাগ্রিগেশন (যেমন, যোগফল বের করা)
var sum = numbers.Aggregate((total, next) => total + next);
Console.WriteLine(sum); // Output: 15
এখানে Aggregate অপারেশনটি ব্যবহার করে সংখ্যা গুলোর যোগফল বের করা হয়েছে, যেখানে কাস্টমভাবে দুটি মানের যোগফল নেয়া হচ্ছে।
LINQ অ্যাগ্রিগেশন অপারেশনগুলো ডেটার ওপর বিভিন্ন গণনা যেমন যোগফল, গড়, সর্বনিম্ন বা সর্বোচ্চ মান, এবং উপাদানের সংখ্যা বের করতে সহায়ক। এগুলো ব্যবহারের মাধ্যমে আপনি ডেটার বিশ্লেষণ দ্রুত এবং কার্যকরভাবে করতে পারবেন। LINQ এর শক্তিশালী এবং ফ্লেক্সিবল অপারেশনগুলির মাধ্যমে ডেটা ম্যানিপুলেশন আরও সহজ এবং কার্যকর হয়ে ওঠে।
LINQ এর মাধ্যমে আপনি সহজেই ডেটার উপর বিভিন্ন পরিসংখ্যানগত ফাংশন প্রয়োগ করতে পারেন। যেমন, Count()
, Sum()
, Min()
, এবং Max()
মেথড ব্যবহার করে আপনি ডেটার সংখ্যা, যোগফল, সর্বনিম্ন এবং সর্বোচ্চ মান বের করতে পারেন। এগুলোর ব্যবহার খুবই সাধারণ এবং কার্যকরী।
Count()
মেথড ব্যবহার করে একটি коллекশন বা সিকোয়েন্সে কতগুলো আইটেম রয়েছে, তা গণনা করা যায়। এটি সাধারণত কুয়েরি বা ডেটা সোর্সের মধ্যে নির্দিষ্ট শর্ত মেনে কতগুলো আইটেম রয়েছে, তা জানতে ব্যবহৃত হয়।
উদাহরণ:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// Count() ব্যবহার করে even numbers এর সংখ্যা পাওয়া
int evenCount = numbers.Count(num => num % 2 == 0);
Console.WriteLine($"Even Numbers Count: {evenCount}"); // Output: 5
এখানে, Count()
মেথড ব্যবহার করে numbers
লিস্টের মধ্যে even numbers গুনা হয়েছে।
Sum()
মেথড ব্যবহার করে একটি সংখ্যার সিরিজের যোগফল বের করা হয়। এটি সাধারণত ন্যুমেরিক ডেটার উপর কার্যকর, যেমন সংখ্যা বা পেমেন্ট অ্যামাউন্ট।
উদাহরণ:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// Sum() ব্যবহার করে numbers এর যোগফল পাওয়া
int totalSum = numbers.Sum();
Console.WriteLine($"Total Sum: {totalSum}"); // Output: 55
এখানে, Sum()
মেথড numbers
লিস্টের সমস্ত সংখ্যার যোগফল বের করেছে।
Min()
মেথড ব্যবহার করে ডেটার মধ্যে সর্বনিম্ন মান বের করা হয়। এটি সাধারণত এমন সময় ব্যবহার করা হয় যখন আপনাকে ডেটার মধ্যে সবচেয়ে ছোট মান বের করতে হয়, যেমন, সর্বনিম্ন পরিমাণ, সর্বনিম্ন দাম ইত্যাদি।
উদাহরণ:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// Min() ব্যবহার করে numbers এর মধ্যে সর্বনিম্ন মান পাওয়া
int minNumber = numbers.Min();
Console.WriteLine($"Minimum Number: {minNumber}"); // Output: 1
এখানে, Min()
মেথড numbers
লিস্টের মধ্যে সর্বনিম্ন মান (১) বের করেছে।
Max()
মেথড ব্যবহার করে ডেটার মধ্যে সর্বোচ্চ মান বের করা হয়। এটি এমন সময় ব্যবহৃত হয় যখন আপনাকে ডেটার মধ্যে সবচেয়ে বড় মান বের করতে হয়, যেমন, সর্বোচ্চ দাম, সর্বোচ্চ স্কোর ইত্যাদি।
উদাহরণ:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// Max() ব্যবহার করে numbers এর মধ্যে সর্বোচ্চ মান পাওয়া
int maxNumber = numbers.Max();
Console.WriteLine($"Maximum Number: {maxNumber}"); // Output: 10
এখানে, Max()
মেথড numbers
লিস্টের মধ্যে সর্বোচ্চ মান (১০) বের করেছে।
একই কুয়েরিতে Count()
, Sum()
, Min()
, এবং Max()
মেথড একসাথে ব্যবহার করেও ফলাফল পাওয়া সম্ভব। উদাহরণস্বরূপ, আমরা একটি লিস্টের মধ্যে even numbers এর সংখ্যা, যোগফল, সর্বনিম্ন এবং সর্বোচ্চ মান বের করতে পারি।
উদাহরণ:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// Even numbers এর সংখ্যা, যোগফল, সর্বনিম্ন ও সর্বোচ্চ মান বের করা
var evenNumbers = numbers.Where(num => num % 2 == 0);
int evenCount = evenNumbers.Count();
int evenSum = evenNumbers.Sum();
int evenMin = evenNumbers.Min();
int evenMax = evenNumbers.Max();
Console.WriteLine($"Even Numbers Count: {evenCount}"); // Output: 5
Console.WriteLine($"Even Numbers Sum: {evenSum}"); // Output: 30
Console.WriteLine($"Even Numbers Min: {evenMin}"); // Output: 2
Console.WriteLine($"Even Numbers Max: {evenMax}"); // Output: 10
এখানে, প্রথমে Where()
মেথডের মাধ্যমে even numbers ফিল্টার করা হয়েছে, তারপর Count()
, Sum()
, Min()
, এবং Max()
মেথড ব্যবহার করে তাদের সংখ্যা, যোগফল, সর্বনিম্ন এবং সর্বোচ্চ মান বের করা হয়েছে।
LINQ এর মাধ্যমে আপনি Count()
, Sum()
, Min()
, এবং Max()
মেথড ব্যবহার করে ডেটা বিশ্লেষণ করতে পারেন। এসব মেথড ডেটার উপর গুরুত্বপূর্ণ গাণিতিক অপারেশন যেমন সংখ্যা গণনা, যোগফল, সর্বনিম্ন এবং সর্বোচ্চ মান বের করতে সাহায্য করে, যা ডেটা প্রসেসিং এবং বিশ্লেষণের জন্য অত্যন্ত কার্যকরী।
LINQ তে Average এবং Aggregate দুটি গুরুত্বপূর্ণ মেথড, যা ডেটার উপর কিছু গণনা (calculation) বা সংক্ষেপণ (aggregation) করার জন্য ব্যবহৃত হয়। এই দুটি মেথড সাধারণত সংখ্যা বা সিরিজের উপর পরিসংখ্যানিক অপারেশন করার জন্য ব্যবহৃত হয়।
Average মেথডটি একটি সংখ্যার সংগ্রহের (যেমন, লিস্ট বা অ্যারে) গড় (mean) হিসাব করতে ব্যবহৃত হয়। এটি একটি সংখ্যা বা সংখ্যার বৈশিষ্ট্য (যেমন, ফিল্ড বা প্রপার্টি) নেওয়ার মাধ্যমে গড় মান গণনা করে।
List<int> numbers = new List<int> { 10, 20, 30, 40, 50 };
// গড় মান বের করা
double average = numbers.Average();
Console.WriteLine("Average: " + average); // Output: 30
এখানে, Average()
মেথডটি সংখ্যাগুলির গড় বের করেছে, যা ১০, ২০, ৩০, ৪০, ৫০ এর গড় মান ৩০।
যদি আপনার একটি অবজেক্টের সংগ্রহ থাকে, তবে আপনি সেই অবজেক্টের কোনো নির্দিষ্ট প্রপার্টির গড় মান বের করতে পারেন।
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Charlie", Age = 35 }
};
// ব্যক্তিদের গড় বয়স বের করা
double averageAge = people.Average(p => p.Age);
Console.WriteLine("Average Age: " + averageAge); // Output: 30
এখানে Average(p => p.Age)
ব্যবহার করে Age প্রপার্টির গড় বয়স বের করা হয়েছে।
Aggregate মেথডটি একটি ডেটা সংগ্রহের উপর একটি কাস্টম aggregation operation (যেমন, যোগফল, গুণফল, ইত্যাদি) প্রয়োগ করতে ব্যবহৃত হয়। এটি আরও শক্তিশালী এবং নমনীয়, কারণ আপনি এটি দিয়ে যেকোনো ধরনের কাস্টম অপারেশন করতে পারেন, যেমন সমস্ত মান যোগ করা, গুণফল বের করা, বা অন্য কোন ধরনের সমষ্টি তৈরি করা।
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// সমস্ত সংখ্যার যোগফল বের করা
int sum = numbers.Aggregate((total, num) => total + num);
Console.WriteLine("Sum: " + sum); // Output: 15
এখানে, Aggregate((total, num) => total + num)
এর মাধ্যমে প্রতিটি সংখ্যার যোগফল বের করা হয়েছে।
Aggregate
মেথডটি একটি ল্যাম্বডা এক্সপ্রেশন গ্রহণ করে, যেখানে প্রথম আর্গুমেন্টটি হলো চলমান ফলাফল (যা প্রথমে ডিফল্ট মান হিসাবে প্রাথমিক মান গ্রহণ করে), এবং দ্বিতীয় আর্গুমেন্টটি হলো পরবর্তী ডেটা উপাদান। এই অপারেশনটি চলতে থাকে যতক্ষণ না সব উপাদান সম্পূর্ণ হয়ে যায়।List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// সকল সংখ্যার গুণফল বের করা
int product = numbers.Aggregate((total, num) => total * num);
Console.WriteLine("Product: " + product); // Output: 120
এখানে, Aggregate((total, num) => total * num)
ব্যবহৃত হয়েছে সকল সংখ্যার গুণফল বের করার জন্য।
Aggregate মেথডটি একটি প্রাথমিক মান (initial value) গ্রহণ করতে পারে, যা প্রথম অপারেশন চালানোর সময় ব্যবহার করা হয়।
List<int> numbers = new List<int> { 1, 2, 3, 4, 5 };
// প্রাথমিক মান 10 দিয়ে যোগফল বের করা
int sumWithInitialValue = numbers.Aggregate(10, (total, num) => total + num);
Console.WriteLine("Sum with initial value: " + sumWithInitialValue); // Output: 25
এখানে, Aggregate(10, (total, num) => total + num)
ব্যবহার করে ১০ যোগ করার মাধ্যমে প্রথমে ১০ মান ব্যবহার করা হয়েছে এবং তারপর সমস্ত উপাদানের যোগফল যোগ করা হয়েছে।
Select এবং Aggregate মেথড একত্রে ব্যবহার করে আপনি ডেটাকে ফিল্টার করে পরবর্তীতে কাস্টম অ্যাগ্রিগেশন করতে পারেন।
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25 },
new Person { Name = "Bob", Age = 30 },
new Person { Name = "Charlie", Age = 35 }
};
// ব্যক্তিদের বয়সের যোগফল বের করা
int totalAge = people.Select(p => p.Age).Aggregate((total, age) => total + age);
Console.WriteLine("Total Age: " + totalAge); // Output: 90
এখানে, Select(p => p.Age)
দিয়ে প্রথমে Age প্রপার্টি নির্বাচিত করা হয়েছে এবং তারপর Aggregate
মেথড ব্যবহার করে তাদের যোগফল বের করা হয়েছে।
LINQ তে Group By এবং Aggregates মেথড দুটি অত্যন্ত শক্তিশালী টুল, যা ডেটাকে গ্রুপ করে তার উপর বিভিন্ন ধরনের অ্যাগ্রিগেশন (যেমন গড়, যোগফল, গুণফল ইত্যাদি) অপারেশন প্রয়োগ করতে ব্যবহৃত হয়। এটি ডেটা সেটের মধ্যে সম্পর্কিত উপাদানগুলিকে একটি গ্রুপে ভাগ করে তাদের উপর গণনা করার সুবিধা দেয়।
Group By মেথডটি একটি সংগ্রহকে নির্দিষ্ট একটি কন্ডিশনের ভিত্তিতে গ্রুপ করতে ব্যবহৃত হয়। এটি একটি গ্রুপড সংগ্রহ তৈরি করে, যেখানে প্রতিটি গ্রুপের উপাদানগুলি একটি নির্দিষ্ট কন্ডিশন অনুসারে সাজানো হয়। উদাহরণস্বরূপ, আপনি একটি লিস্টকে তাদের বয়স, বিভাগ বা অন্যান্য প্রপার্টির ভিত্তিতে গ্রুপ করতে পারেন।
Query Syntax-এ Group By ব্যবহার করা হয় group
কিওয়ার্ডের মাধ্যমে। এটি একটি গ্রুপড সংগ্রহ তৈরি করে, যা গ্রুপের কন্ডিশন অনুযায়ী সাজানো হয়।
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25, Department = "HR" },
new Person { Name = "Bob", Age = 30, Department = "IT" },
new Person { Name = "Charlie", Age = 35, Department = "HR" },
new Person { Name = "David", Age = 28, Department = "IT" },
new Person { Name = "Eve", Age = 22, Department = "Marketing" }
};
// বিভাগ অনুসারে গ্রুপিং
var groupedByDepartment = from person in people
group person by person.Department;
foreach (var group in groupedByDepartment)
{
Console.WriteLine($"Department: {group.Key}");
foreach (var person in group)
{
Console.WriteLine($" Name: {person.Name}, Age: {person.Age}");
}
}
এখানে, group person by person.Department
দ্বারা Department প্রপার্টির ভিত্তিতে গ্রুপ করা হয়েছে। ফলস্বরূপ, "HR", "IT", এবং "Marketing" বিভাগে থাকা ব্যক্তিদের নাম ও বয়স প্রিন্ট করা হবে।
Method Syntax-এ GroupBy() মেথডটি ব্যবহার করা হয়, যা একটি Lambda Expression গ্রহণ করে। এখানে কন্ডিশন অনুযায়ী ডেটাকে গ্রুপ করা হয়।
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25, Department = "HR" },
new Person { Name = "Bob", Age = 30, Department = "IT" },
new Person { Name = "Charlie", Age = 35, Department = "HR" },
new Person { Name = "David", Age = 28, Department = "IT" },
new Person { Name = "Eve", Age = 22, Department = "Marketing" }
};
// বিভাগ অনুসারে গ্রুপিং
var groupedByDepartment = people.GroupBy(p => p.Department);
foreach (var group in groupedByDepartment)
{
Console.WriteLine($"Department: {group.Key}");
foreach (var person in group)
{
Console.WriteLine($" Name: {person.Name}, Age: {person.Age}");
}
}
এখানে, GroupBy(p => p.Department)
ব্যবহার করা হয়েছে ডেটাকে Department অনুসারে গ্রুপ করার জন্য।
Group By এর সাথে Aggregation মেথডগুলো যেমন Count, Sum, Average, Min, Max ব্যবহার করে আপনি প্রতিটি গ্রুপের উপর গণনা বা পরিসংখ্যানিক অপারেশন করতে পারেন।
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25, Department = "HR" },
new Person { Name = "Bob", Age = 30, Department = "IT" },
new Person { Name = "Charlie", Age = 35, Department = "HR" },
new Person { Name = "David", Age = 28, Department = "IT" },
new Person { Name = "Eve", Age = 22, Department = "Marketing" }
};
// বিভাগ অনুসারে গ্রুপিং এবং প্রতিটি গ্রুপের সদস্য সংখ্যা বের করা
var groupedByDepartment = people.GroupBy(p => p.Department)
.Select(g => new
{
Department = g.Key,
Count = g.Count()
});
foreach (var group in groupedByDepartment)
{
Console.WriteLine($"Department: {group.Department}, Count: {group.Count}");
}
এখানে, g.Count()
দ্বারা প্রতিটি বিভাগের সদস্য সংখ্যা বের করা হয়েছে।
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25, Department = "HR" },
new Person { Name = "Bob", Age = 30, Department = "IT" },
new Person { Name = "Charlie", Age = 35, Department = "HR" },
new Person { Name = "David", Age = 28, Department = "IT" },
new Person { Name = "Eve", Age = 22, Department = "Marketing" }
};
// বিভাগ অনুসারে গ্রুপিং এবং প্রতিটি বিভাগের গড় বয়স বের করা
var groupedByDepartment = people.GroupBy(p => p.Department)
.Select(g => new
{
Department = g.Key,
TotalAge = g.Sum(p => p.Age)
});
foreach (var group in groupedByDepartment)
{
Console.WriteLine($"Department: {group.Department}, Total Age: {group.TotalAge}");
}
এখানে, g.Sum(p => p.Age)
ব্যবহার করে প্রতিটি বিভাগের মোট বয়স বের করা হয়েছে।
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25, Department = "HR" },
new Person { Name = "Bob", Age = 30, Department = "IT" },
new Person { Name = "Charlie", Age = 35, Department = "HR" },
new Person { Name = "David", Age = 28, Department = "IT" },
new Person { Name = "Eve", Age = 22, Department = "Marketing" }
};
// বিভাগ অনুসারে গ্রুপিং এবং প্রতিটি বিভাগের গড় বয়স বের করা
var groupedByDepartment = people.GroupBy(p => p.Department)
.Select(g => new
{
Department = g.Key,
AverageAge = g.Average(p => p.Age)
});
foreach (var group in groupedByDepartment)
{
Console.WriteLine($"Department: {group.Department}, Average Age: {group.AverageAge}");
}
এখানে, g.Average(p => p.Age)
ব্যবহার করে প্রতিটি বিভাগের গড় বয়স বের করা হয়েছে।
List<Person> people = new List<Person>
{
new Person { Name = "Alice", Age = 25, Department = "HR" },
new Person { Name = "Bob", Age = 30, Department = "IT" },
new Person { Name = "Charlie", Age = 35, Department = "HR" },
new Person { Name = "David", Age = 28, Department = "IT" },
new Person { Name = "Eve", Age = 22, Department = "Marketing" }
};
// বিভাগ অনুসারে গ্রুপিং এবং প্রতিটি বিভাগের সর্বনিম্ন ও সর্বোচ্চ বয়স বের করা
var groupedByDepartment = people.GroupBy(p => p.Department)
.Select(g => new
{
Department = g.Key,
MinAge = g.Min(p => p.Age),
MaxAge = g.Max(p => p.Age)
});
foreach (var group in groupedByDepartment)
{
Console.WriteLine($"Department: {group.Department}, Min Age: {group.MinAge}, Max Age: {group.MaxAge}");
}
এখানে, g.Min(p => p.Age)
এবং g.Max(p => p.Age)
ব্যবহার করে প্রতিটি বিভাগের সর্বনিম্ন এবং সর্বোচ্চ বয়স বের করা হয়েছে।
Group By এবং Aggregation Methods ব্যবহারের মাধ্যমে আপনি ডেটাকে একটি নির্দিষ্ট কন্ডিশনের ভিত্তিতে গ্রুপ করতে এবং পরবর্তীতে প্রতিটি গ্রুপের উপর বিভিন্ন গণনা অপারেশন (যেমন Count, Sum, Average, Min, Max) প্রয়োগ করতে পারেন। এর মাধ্যমে ডেটার উপর আরও গভীর এবং অর্থপূর্ণ বিশ্লেষণ করা সম্ভব।
common.read_more